/**
 * 请求拦截
 * @param {Object} http
 */
import CryptoJS from "crypto-js";
import useUserStore from '@/store/modules/user'
// 加签
export const setSign = (token) => {
    const time = Date.now(); // 当前签名有效时间
    const SIGN_SECRET_KEY = "gVTtd0nhu2RMO3n4yvZJGMPe3nKCtmQBJ11b";
    let string = "Bearer " + token + time;
    const sign = CryptoJS.HmacSHA256(string, SIGN_SECRET_KEY).toString();
    return {sign, time};
};
export const requestInterceptors = () => {
    uni.$uv.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
        // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
        config.data = config.data || {};
        console.log(config);
        if(config.data.loading !== false && config.params.loading !== false){
            uni.showLoading({
                // title: '加载中',
                mask: true
            });
        }
		const userStore = useUserStore();
        if(userStore.token){
            const signObj = setSign(userStore.token);
            config.header.token = userStore.token; // 让每个请求携带自定义token 请根据实际情况自行修改
            config.header.sign = signObj.token; // 加签
            config.header.times = signObj.time;
        }
        config.header["Accept-Language"] = uni.getLocale();
        return config
    }, (config) => // 可使用async await 做异步操作
        Promise.reject(config))
}
 